package vo

import "time"

// CreateContractReq 创建合同请求
type CreateContractReq struct {
	SupermarketID uint      `json:"supermarket_id" binding:"required"` // 超市ID
	ContractType  int       `json:"contract_type" binding:"required,oneof=1 2 3"` // 合同类型：1.返保 2.年限 3.租金
	StartTime     time.Time `json:"start_time" binding:"required"` // 开始时间
	EndTime       time.Time `json:"end_time" binding:"required"`   // 结束时间
}

// UpdateContractReq 更新合同请求
type UpdateContractReq struct {
	ID            uint      `json:"id" binding:"required"` // 合同ID
	SupermarketID uint      `json:"supermarket_id" binding:"required"` // 超市ID
	ContractType  int       `json:"contract_type" binding:"required,oneof=1 2 3"` // 合同类型：1.返保 2.年限 3.租金
	StartTime     time.Time `json:"start_time" binding:"required"` // 开始时间
	EndTime       time.Time `json:"end_time" binding:"required"`   // 结束时间
}

// ListContractReq 获取合同列表请求
type ListContractReq struct {
	ContractID   int
	SupermarketID int
	ContractType  int
	IsExpired     int // nil: all, 0: not expired, 1: expired
	Page          int
	PageSize      int
}

// GetContractReq 获取合同详情请求
type GetContractReq struct {
	ID uint `form:"id" binding:"required"` // 合同ID
}

// DeleteContractReq 删除合同请求
type DeleteContractReq struct {
	ID uint `form:"id" binding:"required"` // 合同ID
}

// ContractRsp 合同响应
type ContractRsp struct {
	ID             uint      `json:"id"`             // 合同ID
	SupermarketID  uint      `json:"supermarket_id"`  // 超市ID
	ContractType   int       `json:"contract_type"`   // 合同类型
	SupermarketName string   `json:"supermarket_name"` // 超市名称
	StartTime      time.Time `json:"start_time"`      // 开始时间
	EndTime        time.Time `json:"end_time"`        // 结束时间
	IsExpired      bool      `json:"is_expired"`      // 是否过期
	CreatedAt     time.Time `json:"created_at"`     // 创建时间
}

// ListContractRsp 合同列表响应
type ListContractRsp struct {
	List  []ContractRsp `json:"list"`
	Total int64         `json:"total"`
}
